fix(deps): update rust crate serenity to 0.12.0 #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.11.5->0.12.0Release Notes
serenity-rs/serenity (serenity)
v0.12.4Compare Source
This is a hotfix release to fix broken behaviour of
Message::author_permissionsbefore it is relied on.Thanks to the following for their contributions:
Deprecations
_invariants.Additions
From<&User>has been added toCreateEmbedAuthor, to avoid consuming the user.Fixes
Message::author_permissionsnow respects permission overrides, as it is documented to.Message::author_permissionsnow respectsSEND_MESSAGES_IN_THREADSwhen used in threads.Documentation improvements
Guild::threadshas been expanded.v0.12.3Compare Source
Thanks to the following for their contributions:
Deprecations
Message(Id)::link_ensuredcan be replaced byMessage(Id)::linkif recieved via event, orMessageId::linkif the message was recieved via a HTTP request.CreateInteractionResponse::PremiumRequiredhas been deprecated and replaced with Premium Buttons.GuildChannel::permissions_for_userhas been deprecated, use the newMessage::author_permissionshelper orGuild::user_permissions_in.Additions
CreateButtonnow implementsFrom<Button>.User::display_namehas been added, as users may have two different names now.CurrentApplicationInfo.GuildMemberFlagshave been added.USE_EXTERNAL_APPSpermission has been added.MessageReferenceKindhas been added to start supporting forwarding.{PartialGuild, Guild}::partial_member_permissionshas been added for more efficent permissions checkingunstable_discord_api.Message::author_permissionshelper has been added, alongsidePermissions::dm_permissions.Deserialisation Fixes
Messages with reactions no longer fail to deserialize due to super reaction changes.
unstable_discord_api-1no longer fail to deserialise.General fixes
GuildId::members_iterdocumentation.CreateAttachmentdocumentation has been updated to be more consistent with other builders.CreateEmbedAuthordocumentation can now spellembedcorrectly.AuthorizingIntegrationOwnersis now usable, as the field was previously private.Partial)Guild::member_permissionsis now usable without cache.ChannelId::delete_messagesdocumentation has been expanded to document the single item case.BulkBanResponsehave been made public.bulk_banendpoint is now usable, previously unusable due toSendissues.v0.12.2Compare Source
Thanks to the following for their contributions:
Deprecations
Continuing with the deprecations started in 0.12.1, many more methods and fields have been deprecated in order to make an easier upgrade path to 0.13.
These deprecation messages include a migration path, it is recommended to go one by one using
cargo checkand migrate each warning to reduce the burden migrating to 0.13. Following is a list of the deprecation PRs and the justification for these changes.Channel::is_nsfwmethod was wrong, useless, and served better byGuildChannel::nsfwMember::highest_role_infois now strictly less powerful than the newGuild::member_highest_roleand can avoid a cache lookup if used correctly.Guild::is_largeis less accurate thanGuild::largeMessage::is_ownis super simple to implement yourselfMessage::is_privatesimply checks ifMessage::guild_idisnone.Event::PresencesReplacedoes not exist, and is a relic from when serenity supported user accounts.TeamMember::permissionsis always["*"], so is useless.Other notable changes
CreateMessage::enforce_nonce, to prevent sending duplicate messages.EditProfile::banner, allowing banners to be set for bots.ChannelId::get_thread_member.Guild::partial_member_permissions_in, which can be used to avoid fetching aMemberin message events just to check permissions.From<User>forCreateEmbedAuthor, setting the author name and icon to theUser's info.UserId::direct_message, so you don't need a fullUserto direct message.Http::default_allowed_mentionsto set theAllowedMentionsto be used with every request.Guild(Id)::bulk_ban, allowing bulk banning without hitting rate limits.v0.12.1Compare Source
Thanks to the following for their contributions:
Notable changes
In this release, the standard framework has been deprecated
(#2733).
As Discord continues to endorse and evolve application commands (
/...commands, user commands, message commands, etc.), the standard framework
becomes increasingly outdated. Bots are also steadily losing (and already have
lost) access to contents of messages, making it difficult to build a
prefix-only bot. Unless you plan on restricting your bot to only accept
commands in DMs, allowing its presence in only fewer than 100 guilds, or
presenting a reasonable justification to Discord for permission to continue
using message contents, you should migrate to application commands. We
recommend poise, which supports writing
both prefix and application commands with a
#[command]macro like thestandard framework.
Why not just update the framework?
Poise already exists and is better than the standard framework. Efforts should
be directed at improving poise instead. To support application commands would
require an overhaul of the standard framework, as they are special (for
instance, Discord parses arguments on behalf of the bot and passes them as
structured data, whereas for prefix commands, the bot must parse by itself).
Smaller, but still notable changes
RoleId::to_role_cached- UseGuild::rolesinstead.bitflags!types, resulting in a smaller memory footprint.GuildId/Guildinstead.v0.12.0Compare Source
This release turned out to be one of serenity's largest ever, with well over 300 PRs in total! It contains quite a few major breaking changes to the API. Therefore, the changelog for this release also serves as a migration guide for users upgrading from the 0.11 series.
Thanks to the following for their contributions:
Builders
The closure-based API for constructing requests using the builder pattern has been ripped out and replaced. In place of closures, users must now pass in builder types directly. For example, in serenity 0.11, code like the following was very common:
Now, users instead write the following code:
Or, inline like so:
Note that in this particular example, the channel name is now a mandatory field that must be passed in when constructing the builder. Mutating the builder with subsequent calls to
CreateChannel::namewill change the underlying value. Additionally, all methods on builders now takemut selfand returnSelf, instead of taking and returning&mut self/&mut Self. This allows for explicit construction as in the second example above. Also, builders no longer wrap apub HashMap<&'static str, T>; the hashmap has been flattened into concrete private fields.Some benefits to this new approach to builders are:
Attachments
AttachmentTypeenum has been replaced with aCreateAttachmentbuilder struct. This struct has thefile,path, andurlconstructors that eagerly evaluate the data passed to them -CreateAttachmentsimply stores the resulting raw data. This is in contrast toAttachmentTypewhich lazily carried filepaths/urls with it, and haddataandfilenamemethods for resolving them. Additionally, theCreateAttachment::to_base64method can be used to manually encode an attachment if needed.EditAttachmentsbuilder struct has been added for use with theattachmentsmethod on theEditMessage,EditWebhookMessage, andEditInteractionResponsebuilders. This new builder provides finer control when editing a message's existing attachments or uploading additional ones. Also, the following methods have been renamed to more accurately reflect their behavior:EditMessage::attachmentEditMessage::new_attachmentEditMessage::add_existing_attachmentEditMessage::keep_existing_attachmentEditWebhookMessage::clear_existing_attachmentsEditWebhookMessage::clear_attachmentsEditInteractionResponse::clear_existing_attachmentsEditInteractionResponse::clear_attachmentsCollectors
Collectors have been redesigned and simplified at no cost to expressibility. There is now a generic
collector::collectfunction which takes a closure as argument, letting you filter events as they stream in.ComponentInteractionCollector,ModalInteractionCollector,MessageCollector, andReactionCollector) are simply convenience structs that wrap this underlying function.EventCollectoris now deprecated, as its use usually involved anti-patterns around fallibility. However, its functionality can still be replicated usingcollector::collect. See example 10 for more details.RelatedIdandRelatedIdsForEventTypetypes have been removed as they were only used byEventCollector. Methods for retrieving them from events have also been removed; if users wish to extract "related" ids from an event, they should do so directly from the event's fields. The removed methods are the following:Event::user_idEvent::guild_idEvent::channel_idEvent::message_idEventType::related_idsCommands
In an effort to shorten long names and make import paths less unwieldy, Serenity now uses
commandinstead ofapplication_commandin all places, except for thePermissions::USE_APPLICATION_COMMANDSconstant. This includes methods on theHttp,GuildId,Guild,PartialGuild, andCommandtypes, as well as a few other miscellaneous places:Http::*_{global,guild}_application_command*Http::*_{global,guild}_command*{GuildId,Guild,PartialGuild}::*_application_command*{GuildId,Guild,PartialGuild}::*_command*Command::*_global_application_command*Command::*_global_command*Interaction::application_commandInteraction::commandEventHandler::application_command_permissions_updateEventHandler::command_permissions_updateRoute::ApplicationCommand*Route::Command*Permissions::use_application_commandsPermissions::use_commandsAdditionally, the following command types have been renamed:
CreateApplicationCommandCreateCommandCreateApplicationCommandOptionCreateCommandOptionCreateApplicationCommandPermissionDataCreateCommandPermissionCreateApplicationCommandPermissionsDataEditCommandPermissionsCommandPermissionCommandPermissionsCommandPermissionDataCommandPermissionFurthermore, the methods on
CreateCommandPermission, such asnew,kind, etc. have been replaced with constructors for each type of permission, e.g.role,user,channel, etc., to avoid a possible mismatch betweenkindand the id that gets passed in.Finally, the
{GuildId,Guild,PartialGuild}::create_command_permissionmethod has been renamed toedit_command_permissionto more accurately reflect its behavior.Cache
CacheReftype that wraps a reference into the cache. Other methods that returned a map, now return a wrapper type around a reference to the map, with a limited API to prevent accidental deadlocks. This all helps reduce the number of clones when querying the cache. Those wishing to replicate the old behavior can simply call.clone()on the return type to obtain the wrapped data.CacheSettingshas new fieldstime_to_live,cache_guilds,cache_channels, andcache_users, allowing cache configuration on systems with memory requirements; whereas previously, memory-constrained systems were forced to disable caching altogether.PrivateChannels (aka DM channels) has been removed, as they are never sent across the gateway by Discord. Therefore, theCache::{private_channel, private_channels}methods have been removed, andCache::guild_channelhas been renamed to justCache::channel. Additionally, some uses of theChannelenum in return types have been replaced with eitherGuildChannelorPrivateChannelas seen fit.IDs
All
*Idtypes have had their internal representations made private. Therefore, the API has changed as follows:ExampleId(12345)ExampleId::new(12345)example_id.as_u64()example_id.get()Note that all
*Idtypes now implementInto<u64>andInto<i64>. Additionally, attempting to instantiate an id with a value of0will panic.Also, the implementations of
FromStrfor theUserId,RoleId, andChannelIdtypes now expect an integer rather than a mention string. The following table shows the new expected input strings:ChannelId<#​81384788765712384>81384788765712384RoleId<@​&136107769680887808>136107769680887808UserId<@​114941315417899012>or<@​!114941315417899012>114941315417899012Users wishing to parse mentions should either parse into a
Mentionobject, or use theutils::{parse_user_mention, parse_role_mention, parse_channel_mention}methods.Interactions
The various interaction types have been renamed as follows:
ApplicationCommandInteractionCommandInteractionMessageComponentInteractionComponentInteractionModalSubmitInteractionModalInteractionMethod names on interaction types have been shortened in the following way:
create_interaction_responsecreate_responsecreate_followup_messagecreate_followupdelete_original_interaction_responsedelete_responsedelete_followup_messagedelete_followupedit_original_interaction_responseedit_responseedit_followup_messageedit_followupget_interaction_responseget_responseget_followup_messageget_followupAutocompleteInteractionhas been merged intoCommandInteraction, along with its corresponding methods.kindfield has been removed from each of the interaction structs.quick_modalmethod has been added toCommandInteractionandComponentInteraction. See the docs for more details.Framework
The standard framework is now configurable at runtime, as the
configuremethod now takesselfby reference. In line with the builder changes, theConfigurationandBucketBuilderbuilders are no longer closure-based and must be passed in directly. Also, theFrameworktrait has been reworked to accomodate more use cases than just text commands:dispatchmethod now takes aFullEventas argument instead of just aMessage. This enum contains all the data that is passed to theEventHandler.initmethod has been added, that allows for more complex framework initialization, which can include executing HTTP requests, or accessing cache or shard data.As a result, the trait now accomodates alternative frameworks more easily, such as poise.
Gateway
WsStreamtoWsClient.ShardManagerMonitorandShardManagerMessagetypes have been removed. Their functionality has been replicated via methods directly onShardManager. Any fields with typeSender<ShardManagerMessage>, as well as theClient::shard_managerfield, have had their types changed toArc<ShardManager>. The new methods onShardManagerare the following:return_with_valueshutdown_finishedrestart_shardupdate_shard_latency_and_stageShardClientMessageandInterMessageenums were deemed redundant wrappers aroundShardRunnerMessageand removed - users should useShardRunnerMessagedirectly instead.ShardManagerErrortype is removed in favor ofGatewayError.Shard::heartbeat_instants. Users should instead use thelast_heartbeat_{sent,ack}methods, which now returnOption<Instant>instead ofOption<&Instant>.Shard::heartbeat_intervalto returnOption<Duration>instead ofOption<u64>.Shard::check_heartbeattodo_heartbeat.ShardMessenger::newnow takes&ShardRunneras argument instead ofSender<ShardRunnerMessage>.ShardRunnerMessage::AddCollectorvariant in favor of theShardMessenger::add_collectormethod. This method adds the collectors immediately, whereasShardRunnerMessageis polled periodically in a loop - this could occasionally cause collectors to drop the first event they received.serenity::client::bridge::{gateway,voice}::*have been moved intoserenity::gateway. They are now gated behind thegatewayfeature instead of theclientfeature, however most users use these features in conjunction, and so should not see a change in required-enabled features.MSRV
Serenity now uses Rust edition 2021, with an MSRV of Rust 1.74.
Miscellaneous
Added
thread_idparameter toHttp::{get,edit,delete}_webhook_message,Http::execute_webhook}, as well asWebhook::{get,delete}_message.audit_log_reasonparameter to manyHttpmethods and builder structs.EventHandler::shards_readymethod.Defaultfor many model types.buttonandselect_menumethods to the following builders:CreateInteractionResponseMessageCreateInteractionResponseFollowupEditInteractionResponseCreateMessageEditMessageEditWebhookMessageExecuteWebhookChannelId::create_forum_postandGuildChannel::create_forum_post.event_handlerandraw_event_handlerfields with pluralizedevent_handlersandraw_event_handlersin the following structs:ShardManagerOptionsShardQueuerShardRunnerShardRunnerOptionsClientBuilderReactionRemoveEmojiandGuildAuditLogEntryCreate.serenity::allmodule, which re-exports most public items in the crate.CreateButton::custom_idmethod.{GuildId, Guild, PartialGuild}::edit_mfa_level.EditWebhookMessageendpoint by adding anew_attachmentsparameter toHttp::edit_webhook_message, as well as the following methods to theEditWebhookMessagebuilder:attachmentadd_existing_attachmentremove_existing_attachmentUser::global_namefield, and by making discriminators on usernames optional and non-zero. In particular, thePresenceUser::discriminatorandUser::discriminatorfields are now of typeOption<NonZeroU16>.{GuildId,Guild,PartialGuild}::current_user_membermethod.User::static_facemethod, mirroringUser::face.VOICE_CHANNEL_STATUS_UPDATEgateway event.GuildId::everyone_rolemethod.CREATE_EVENTSandCREATE_GUILD_EXPRESSIONSpermissions, and renameMANAGE_EMOJIS_AND_STICKERStoMANAGE_GUILD_EXPRESSIONS(the old name is still present but deprecated).FormattedTimestamputility struct for representing a combination of a timestamp and a formatting style.utils::argument_convert::parse_message_url.HashtoTimestamp's derive list.typesizesupport.From<Into<String>>forAutocompleteChoice.Changed
Request::body_refnow returnsOption<&T>instead of&Option<&T>.Typing::stopnow returnsboolinstead ofOption<()>. Also,Typing::startand any wrapper methods are now infallible.async:ChannelId::nameContext::*Guild::{members_starting_with, members_containing, members_username_containing, members_nick_containing}Guild::default_channelPartialGuild::greater_member_hierarchyShardManager::newUserId::to_user_cachedError::Httpvariant.Guild::memberto returnCow<'_, Member>instead of justMember.ShardManagerOptionsto be owned (Arcis cheap to clone).u8.RequestBuilder::bodyfromOption<&[u8]>toOption<Vec<u8>>.MessageInteractionnon-exhaustive, and add amemberfield.Permissions::USE_SLASH_COMMANDStoUSE_APPLICATION_COMMANDS.constants::OpCodetoOpcode, and the same forvoice_model::OpCode.ShardInfofor tracking Shard ids, and change ids fromu64tou32.Message::noncefield to a customNonceenum instead of aserde_json::Value.MembershipState,ScheduledEventStatus, andScheduledEventTypenon-exhaustive.MessageActivityKindvariants to use CamelCase instead of ALL_CAPS.CurrentPresencewith aPresenceDatastruct.ActivityDatain place ofActivityfor setting the current presence.set_activitymethods to take anOption<ActivityData>to allow for clearing the current presence by passing inNone.ClientBuilder, and adding an optionalpresenceparameter toShard::new.Unknownvariants on enums are now changed toUnknown(u8). Also, thenummethod for those enums is removed; users should callu8::frominstead.Member::editto edit in place, and returnResult<()>instead ofResult<Member>.u32,u64, orNonZeroU64.{GuildId, Guild, PartialGuild}::deleteto returnResult<()>.impl From<String> for Timestampwithimpl TryFrom<&str>.const:LightMethod::reqwest_methodRatelimit::{limit, remaining, reset, reset_after}RequestBuilder::newChannel::{id, position, name}Error::is_cache_errEvent::event_typeEventType::nameGatewayIntents::*Permissions::*CommonFilterOptions::{filter_limit, collect_limit}fields fromu32toNonZeroU32.GuildChannel::message_countfield fromOption<u8>toOption<u32>.serenity::utils::colourmodule intoserenity::model.CreateAllowedMentions::parsewithall_users,all_roles, andeveryonemethods.ChannelId::nameto returnResult<String>instead ofOption<String>.EventHandlermethods if thecachefeature is disabled. Relevant cache-dependant data is now passed in usingOption.u32.FutureforClientBuilderwithIntoFuture.ClientBuilder::{get_token, get_type_map, get_cache_settings}infallible.CacheUpdate::OutputforChannelDeleteEventfrom()toVec<Message>.Box:CommandInteraction::memberComponentInteraction::messageModalInteraction::messageMessage::memberMessage::interactionCreateSelectMenuKindandComponentInteractionDataKindenums to better enforce well-formation of requests.httpmodule by re-exporting all types found in submodules at the top level and removinng access to the submodules themselves.ErrorResponsenon-exhaustive, change theurlfield fromUrltoString, and add amethodfield.Http::ratelimiterfield inOption, and remove the correspondingratelimiter_disabledfield.reasonparameter toHttp::{ban, kick}, and removeHttp::{ban,kick}_with_reason.RouteandRouteInfoenums, and addmethodandparamsfields to theRequeststruct.model::applicationmodule in the same way thehttpmodule was flattened.ThreadMembersUpdateEvent::member_countfield fromu8toi16.GuildUpdateEvent::guildfromPartialGuildtoGuildReaction::memberfromOption<PartialMember>toMemberIntegration::guild_idfromGuildIdtoOption<GuildId>IncidentUpdate::statusfromIncidentStatustoString(IncidentStatusis also removed){Guild,PartialGuild}::premium_subscription_countfromu64toOption<u64>InputText::valuefromStringtoOption<String>CurrentApplicationInfo::ownerfromUsertoOption<User>ScheduledEventMetadata::locationfromStringtoOption<String>Trigger::KeywordPresetfrom a tuple variant to a struct variantIncident::short_linktoshortlinkThreadDeleteEvent::channels_idtochannel_idsThreadMembersUpdateEvent::removed_members_idstoremoved_member_idsInviteTargetType::EmmbeddedApplicationtoEmbeddedApplicationScope::RelactionshipsReadtoRelationshipsReadCurrentUserto be a newtype aroundUser, implement theDereftrait, and remove theguilds,invite_url, andinvite_url_with_oauth2_scopesmethods. The only method now unique toCurrentUserisedit. All other methods are available to call via deref coercion.modeltypes non-exhaustive:model::application::{Interaction, ActionRow, Button, SelectMenu, SelectMenuOption, InputText}model::application::{PartialCurrentApplicationInfo, Team, TeamMember, InstallParams}model::channel::{PartialGuildChannel, ChannelMention}model::gateway::{ActivityEmoji, ClientStatus}model::guild::{Ban, GuildPrune, GuildInfo, UnavailableGuild, GuildWelcomeScreen}model::guild::{ScheduledEventMetadata, ScheduledEventUser}model::guild::automod::{Rule, TriggerMetadata, Action, ActionExecution}model::misc::EmojiIdentifierCacheUpdate::OutputforChannelUpdateEventfrom()toChannel. Also, make{Guild,PartialGuild}::user_permissions_ininfallible and changeError::InvalidPermissionsinto a struct variant containing both the therequiredpermissions as well as thepresentpermissions.secrecy::SecretStringto prevent them being leaked throughDebugimplementations, and so that they are zeroed when dropped.Strings to a dedicatedImageHashtype which saves on space by storing the hash directly as bytes.rate_limit_per_userfields are now counted using au16.positionfields now hold au16.posititionfields now hold au16.auto_archive_positionfields are now an enumAutoArchivePosition.afk_timeoutfields are now an enumAfkTimeout.DefaultReactionstruct with aForumEmojienum.Sticker::sort_valuefield is now anOption<u16>.min_valuesandmax_valuesfields for Select Menus now hold au8.max_ageinvite field now holds au32.max_usesinvite field now holds au8.ActivityPartycurrent and maximum size are now of typeu32.Ready::versionfield is now au8.min_lengthandmax_lengthfields for Input Text components now hold au16.mention_total_limitfield for automod triggers now holds au8.RoleSubscriptionData::total_months_subscribedfield is now au16.{Http,ChannelId,GuildChannel}::create_public_threadtocreate_thread_from_message, and similarly renamecreate_private_threadtocreate_thread, to more accurately reflect their behavior. The corresponding endpoints have also been renamed fromChannelPublicThreads/ChannelPrivateThreads, toChannelMessageThreads/ChannelThreads, respectively.ThreadDeleteevent now provides the fullGuildChannelobject for the deleted thread if it is present in the cache.ThreadUpdateevent now provides the old thread'sGuildChannelobject if it is present in the cache.Webhook::source_guildandWebhook::source_channelfields have had their types changed fromOption<PartialGuild>/Option<PartialChannel>to their ownOption<WebhookGuild>/Option<WebhookChannel>types in order to avoid deserialization errors. These new types contain very few fields, but have methods for converting intoPartialGuilds orChannels by querying the API.json::preludemodule with public wrapper functions that abstract over bothserde_jsonandsimd-json.GatewayIntents::GUILD_BANStoGUILD_MODERATION(the old name is still present but is deprecated).CreateInteractionResponseMessage::flagsto takeInteractionResponseFlagsinstead ofMessageFlags.ThreadMemberintoPartialThreadMember.GuildId::audit_logs.Guild::members_with_statusto returnimpl Iterator<Item = &Member>instead ofVec<Member>.Removed
model::application::ResolvedTarget.model::guild::GuildContainer.EventHandler::{guild_unavailable, unknown}.EditProfile::{email, password, new_password}.serenity::json::from_number. Users should call.into()instead.Channel::Categoryvariant, asGuildChannel::kindcan already beChannelType::Category. However, theChannel::categorymethod is still available.Mention::Emojivariant.serenity::token::parse- usetoken::validateinstead.absolute_ratelimitsfeature and replace it with a runtime configuration option.CacheAndHttp, and inline it as separatecacheandhttpfields in the following structs:ShardManagerOptionsShardQueuerShardRunnerShardRunnerOptionsClientVoiceServerUpdateEvent::channel_idResumedEvent::channel_idReady::{presences, private_channels, trace}InviteGuild::{text_channel_count, voice_channel_count}VoiceState::tokenIncidentUpdate::affected_components(and also theAffectedComponentstruct)Maintenance::{description, stop, start}SelectMenu::valuesMessageUpdateEvent::{author, timestamp, nonce, kind, stickers}PartialGuild::{owner, permissions}InviteTargetType::NormalTrigger::HarmfulLinkFromStrAndCacheandStrExttraits. Also removesmodel::{ChannelParseError,RoleParseError}, which conflicted with types of the same name fromutils.modelfrom themodel::prelude, and don't re-export types from other libraries, likeDeserializeorHashMap.DefaultAvatarenum.PartialOrd/Ord:EventTypeenum. Instead ofEvent::event_type().name(), users should just callEvent::name.PingInteraction::guild_localefield.v0.11.7Compare Source
Thanks to the following for their contributions:
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.